package com.guomao.listener;

import jakarta.servlet.ServletContext;
import jakarta.servlet.annotation.WebListener;
import jakarta.servlet.http.HttpSessionEvent;
import jakarta.servlet.http.HttpSessionListener;

@WebListener
public class OnlineUsersListener implements HttpSessionListener {

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        ServletContext context = se.getSession().getServletContext();

        Integer onlineUsers = (Integer) context.getAttribute("onlineUsers");

        if (onlineUsers == null) {
            onlineUsers = 1;
        } else {
            onlineUsers = onlineUsers + 1;
        }

        context.setAttribute("onlineUsers", onlineUsers);
    }


    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        ServletContext context = se.getSession().getServletContext();
        Integer onlineUsers = (Integer) context.getAttribute("onlineUsers");

        if (onlineUsers != null && onlineUsers > 0) {
            onlineUsers = onlineUsers - 1;
        }
        context.setAttribute("onlineUsers", onlineUsers);
    }
}
